Synchronizers are used to capture signals that cross from one clock environment to a different clock environment. Synchronizers are necessary to avoid the problem of metastability which can occur when clock environments have timing edges occurring at different times. For example the clock signals in the two environments may be of different frequency, and they may be out of phase with each other. Generally such synchronizers consume a number of clock cycles to overcome metastability issues.
The number of consumed clock cycles depends on the clock frequencies involved in order to meet the required metastability settling time. The metastability settling time is a fixed time allocated such that the probability of metastability extending beyond this time is acceptably low. The settling time is largely technology independent and depends mainly on the statistical analysis of the product lifetime and reliability requirements. If the clock frequency is unknown, or can vary, then the implementation has to consume the number of clock cycles appropriate for the highest clock frequency. This means an unnecessarily large delay for lower clock frequencies.
Although the area overhead of passing a large number of signals across a clock boundary can be reduced by only passing a control signal through synchronizers instead of passing each signal through synchronizers, the delay is still incurred for all the signals associated with such a control signal.